eventcontrollerkey: Use run_controllers() API to forward key events
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 20 Feb 2019 11:48:08 +0000 (12:48 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 20 Feb 2019 12:16:07 +0000 (13:16 +0100)
All 3 phases are run ATM, but just on the specific widget.

gtk/gtkeventcontrollerkey.c

index 91254f8bbc913c56458dfd0c02afaff7cba73519..f1b28d999b3ff28842a7bd94dd767394f82f568a 100644 (file)
@@ -35,6 +35,7 @@
 #include "gtkeventcontrollerprivate.h"
 #include "gtkeventcontrollerkey.h"
 #include "gtkbindings.h"
+#include "gtkenums.h"
 
 #include <gdk/gdk.h>
 
@@ -342,9 +343,14 @@ gtk_event_controller_key_forward (GtkEventControllerKey *controller,
   if (!gtk_widget_get_realized (widget))
     gtk_widget_realize (widget);
 
-  if (_gtk_widget_captured_event (widget, controller->current_event))
+  if (gtk_widget_run_controllers (widget, controller->current_event,
+                                 GTK_PHASE_CAPTURE))
     return TRUE;
-  if (gtk_widget_event (widget, controller->current_event))
+  if (gtk_widget_run_controllers (widget, controller->current_event,
+                                 GTK_PHASE_TARGET))
+    return TRUE;
+  if (gtk_widget_run_controllers (widget, controller->current_event,
+                                 GTK_PHASE_BUBBLE))
     return TRUE;
 
   return FALSE;